#ifndef RAYCUH
#define RAYCUH
#include "vec3.cuh"
/**
 * @brief 声明一条射线
 * 
*/
class ray
{
public:
    __device__ ray() {}
        /** 
 * @brief 构造函数
 * @param origin    vec3类型 原点
 * @param direction vec3类型 方向
 * @param time 光线现在所在的时刻
 */
    __device__ ray(const vec3& a, const vec3& b,float time=0.0) { A = a; B = b;tm=time; }
    __device__ vec3 origin() const { return A; }
    __device__ vec3 direction() const { return B; }
    __device__ vec3 point_at_parameter(float t) const { return A + t * B; }
    __device__ float time() const    { return tm; }
    vec3 A;
    vec3 B;
    float tm;
};

#endif